﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XdXdBot.Console
{
    // Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 
    public class Author
    {
        public DateTime time { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public string username { get; set; }
        public string user_name { get; set; }
        public string url { get; set; }
    }

    public class Committer
    {
        public string name { get; set; }
        public string email { get; set; }
        public string username { get; set; }
        public string user_name { get; set; }
        public string url { get; set; }
    }

    public class Commit
    {
        public string id { get; set; }
        public string tree_id { get; set; }
        public bool distinct { get; set; }
        public string message { get; set; }
        public DateTime timestamp { get; set; }
        public string url { get; set; }
        public Author author { get; set; }
        public Committer committer { get; set; }
        public object added { get; set; }
        public object removed { get; set; }
        public List<string> modified { get; set; }
    }

    public class HeadCommit
    {
        public string id { get; set; }
        public string tree_id { get; set; }
        public bool distinct { get; set; }
        public string message { get; set; }
        public DateTime timestamp { get; set; }
        public string url { get; set; }
        public Author author { get; set; }
        public Committer committer { get; set; }
        public object added { get; set; }
        public object removed { get; set; }
        public List<string> modified { get; set; }
    }

    public class Owner
    {
        public int id { get; set; }
        public string login { get; set; }
        public string avatar_url { get; set; }
        public string html_url { get; set; }
        public string type { get; set; }
        public bool site_admin { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public string username { get; set; }
        public string user_name { get; set; }
        public string url { get; set; }
    }

    public class Repository
    {
        public int id { get; set; }
        public string name { get; set; }
        public string path { get; set; }
        public string full_name { get; set; }
        public Owner owner { get; set; }
        public bool @private { get; set; }
        public string html_url { get; set; }
        public string url { get; set; }
        public string description { get; set; }
        public bool fork { get; set; }
        public DateTime created_at { get; set; }
        public DateTime updated_at { get; set; }
        public DateTime pushed_at { get; set; }
        public string git_url { get; set; }
        public string ssh_url { get; set; }
        public string clone_url { get; set; }
        public string svn_url { get; set; }
        public string git_http_url { get; set; }
        public string git_ssh_url { get; set; }
        public string git_svn_url { get; set; }
        public object homepage { get; set; }
        public int stargazers_count { get; set; }
        public int watchers_count { get; set; }
        public int forks_count { get; set; }
        public string language { get; set; }
        public bool has_issues { get; set; }
        public bool has_wiki { get; set; }
        public bool has_pages { get; set; }
        public object license { get; set; }
        public int open_issues_count { get; set; }
        public string default_branch { get; set; }
        public string @namespace { get; set; }
        public string name_with_namespace { get; set; }
        public string path_with_namespace { get; set; }
    }

    public class Sender
    {
        public int id { get; set; }
        public string login { get; set; }
        public string avatar_url { get; set; }
        public string html_url { get; set; }
        public string type { get; set; }
        public bool site_admin { get; set; }
        public string name { get; set; }
        public string email { get; set; }
        public string username { get; set; }
        public string user_name { get; set; }
        public string url { get; set; }
    }

    public class Enterprise
    {
        public string name { get; set; }
        public string url { get; set; }
    }

    public class Root
    {
        public string hook_name { get; set; }
        public string password { get; set; }
        public int hook_id { get; set; }
        public string hook_url { get; set; }
        public string timestamp { get; set; }
        public string sign { get; set; }
        public string @ref { get; set; }
        public string before { get; set; }
        public string after { get; set; }
        public bool created { get; set; }
        public bool deleted { get; set; }
        public string compare { get; set; }
        public List<Commit> commits { get; set; }
        public HeadCommit head_commit { get; set; }
        public int total_commits_count { get; set; }
        public bool commits_more_than_ten { get; set; }
        public Repository repository { get; set; }
        public Sender sender { get; set; }
        public Enterprise enterprise { get; set; }
    }


}
